/*
 * This file is part of Cadmium.
 * Copyright (C) 2007-2010 Xavier Clerc.
 *
 * Cadmium is free software; you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as published by
 * the Free Software Foundation; either version 3 of the License, or
 * (at your option) any later version.
 *
 * Cadmium is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

package fr.x9c.cadmium.kernel;

/**
 * This interface defines all instruction opcodes as well as mnemonics
 * and number of operands.
 *
 * @author <a href="mailto:cadmium@x9c.fr">Xavier Clerc</a>
 * @version 1.0
 * @since 1.0
 */
interface Instructions {

    /** Constant for instruction '<tt>ACC0</tt>'. */
    int ACC0 = 0;

    /** Constant for instruction '<tt>ACC1</tt>'. */
    int ACC1 = 1;

    /** Constant for instruction '<tt>ACC2</tt>'. */
    int ACC2 = 2;

    /** Constant for instruction '<tt>ACC3</tt>'. */
    int ACC3 = 3;

    /** Constant for instruction '<tt>ACC4</tt>'. */
    int ACC4 = 4;

    /** Constant for instruction '<tt>ACC5</tt>'. */
    int ACC5 = 5;

    /** Constant for instruction '<tt>ACC6</tt>'. */
    int ACC6 = 6;

    /** Constant for instruction '<tt>ACC7</tt>'. */
    int ACC7 = 7;

    /** Constant for instruction '<tt>ACC</tt>'. */
    int ACC = 8;

    /** Constant for instruction '<tt>PUSH</tt>'. */
    int PUSH = 9;

    /** Constant for instruction '<tt>PUSHACC0</tt>'. */
    int PUSHACC0 = 10;

    /** Constant for instruction '<tt>PUSHACC1</tt>'. */
    int PUSHACC1 = 11;

    /** Constant for instruction '<tt>PUSHACC2</tt>'. */
    int PUSHACC2 = 12;

    /** Constant for instruction '<tt>PUSHACC3</tt>'. */
    int PUSHACC3 = 13;

    /** Constant for instruction '<tt>PUSHACC4</tt>'. */
    int PUSHACC4 = 14;

    /** Constant for instruction '<tt>PUSHACC5</tt>'. */
    int PUSHACC5 = 15;

    /** Constant for instruction '<tt>PUSHACC6</tt>'. */
    int PUSHACC6 = 16;

    /** Constant for instruction '<tt>PUSHACC7</tt>'. */
    int PUSHACC7 = 17;

    /** Constant for instruction '<tt>PUSHACC</tt>'. */
    int PUSHACC = 18;

    /** Constant for instruction '<tt>POP</tt>'. */
    int POP = 19;

    /** Constant for instruction '<tt>ASSIGN</tt>'. */
    int ASSIGN = 20;

    /** Constant for instruction '<tt>ENVACC1</tt>'. */
    int ENVACC1 = 21;

    /** Constant for instruction '<tt>ENVACC2</tt>'. */
    int ENVACC2 = 22;

    /** Constant for instruction '<tt>ENVACC3</tt>'. */
    int ENVACC3 = 23;

    /** Constant for instruction '<tt>ENVACC4</tt>'. */
    int ENVACC4 = 24;

    /** Constant for instruction '<tt>ENVACC</tt>'. */
    int ENVACC = 25;

    /** Constant for instruction '<tt>PUSHENVACC1</tt>'. */
    int PUSHENVACC1 = 26;

    /** Constant for instruction '<tt>PUSHENVACC2</tt>'. */
    int PUSHENVACC2 = 27;

    /** Constant for instruction '<tt>PUSHENVACC3</tt>'. */
    int PUSHENVACC3 = 28;

    /** Constant for instruction '<tt>PUSHENVACC4</tt>'. */
    int PUSHENVACC4 = 29;

    /** Constant for instruction '<tt>PUSHENVACC</tt>'. */
    int PUSHENVACC = 30;

    /** Constant for instruction '<tt>PUSH_RETADDR</tt>'. */
    int PUSH_RETADDR = 31;

    /** Constant for instruction '<tt>APPLY</tt>'. */
    int APPLY = 32;

    /** Constant for instruction '<tt>APPLY1</tt>'. */
    int APPLY1 = 33;

    /** Constant for instruction '<tt>APPLY2</tt>'. */
    int APPLY2 = 34;

    /** Constant for instruction '<tt>APPLY3</tt>'. */
    int APPLY3 = 35;

    /** Constant for instruction '<tt>APPTERM</tt>'. */
    int APPTERM = 36;

    /** Constant for instruction '<tt>APPTERM1</tt>'. */
    int APPTERM1 = 37;

    /** Constant for instruction '<tt>APPTERM2</tt>'. */
    int APPTERM2 = 38;

    /** Constant for instruction '<tt>APPTERM3</tt>'. */
    int APPTERM3 = 39;

    /** Constant for instruction '<tt>RETURN</tt>'. */
    int RETURN = 40;

    /** Constant for instruction '<tt>RESTART</tt>'. */
    int RESTART = 41;

    /** Constant for instruction '<tt>GRAB</tt>'. */
    int GRAB = 42;

    /** Constant for instruction '<tt>CLOSURE</tt>'. */
    int CLOSURE = 43;

    /** Constant for instruction '<tt>CLOSUREREC</tt>'. */
    int CLOSUREREC = 44;

    /** Constant for instruction '<tt>OFFSETCLOSUREM2</tt>'. */
    int OFFSETCLOSUREM2 = 45;

    /** Constant for instruction '<tt>OFFSETCLOSURE0</tt>'. */
    int OFFSETCLOSURE0 = 46;

    /** Constant for instruction '<tt>OFFSETCLOSURE2</tt>'. */
    int OFFSETCLOSURE2 = 47;

    /** Constant for instruction '<tt>OFFSETCLOSURE</tt>'. */
    int OFFSETCLOSURE = 48;

    /** Constant for instruction '<tt>PUSHOFFSETCLOSUREM2</tt>'. */
    int PUSHOFFSETCLOSUREM2 = 49;

    /** Constant for instruction '<tt>PUSHOFFSETCLOSURE0</tt>'. */
    int PUSHOFFSETCLOSURE0 = 50;

    /** Constant for instruction '<tt>PUSHOFFSETCLOSURE2</tt>'. */
    int PUSHOFFSETCLOSURE2 = 51;

    /** Constant for instruction '<tt>PUSHOFFSETCLOSURE</tt>'. */
    int PUSHOFFSETCLOSURE = 52;

    /** Constant for instruction '<tt>GETGLOBAL</tt>'. */
    int GETGLOBAL = 53;

    /** Constant for instruction '<tt>PUSHGETGLOBAL</tt>'. */
    int PUSHGETGLOBAL = 54;

    /** Constant for instruction '<tt>GETGLOBALFIELD</tt>'. */
    int GETGLOBALFIELD = 55;

    /** Constant for instruction '<tt>PUSHGETGLOBALFIELD</tt>'. */
    int PUSHGETGLOBALFIELD = 56;

    /** Constant for instruction '<tt>SETGLOBAL</tt>'. */
    int SETGLOBAL = 57;

    /** Constant for instruction '<tt>ATOM0</tt>'. */
    int ATOM0 = 58;

    /** Constant for instruction '<tt>ATOM</tt>'. */
    int ATOM = 59;

    /** Constant for instruction '<tt>PUSHATOM0</tt>'. */
    int PUSHATOM0 = 60;

    /** Constant for instruction '<tt>PUSHATOM</tt>'. */
    int PUSHATOM = 61;

    /** Constant for instruction '<tt>MAKEBLOCK</tt>'. */
    int MAKEBLOCK = 62;

    /** Constant for instruction '<tt>MAKEBLOCK1</tt>'. */
    int MAKEBLOCK1 = 63;

    /** Constant for instruction '<tt>MAKEBLOCK2</tt>'. */
    int MAKEBLOCK2 = 64;

    /** Constant for instruction '<tt>MAKEBLOCK3</tt>'. */
    int MAKEBLOCK3 = 65;

    /** Constant for instruction '<tt>MAKEFLOATBLOCK</tt>'. */
    int MAKEFLOATBLOCK = 66;

    /** Constant for instruction '<tt>GETFIELD0</tt>'. */
    int GETFIELD0 = 67;

    /** Constant for instruction '<tt>GETFIELD1</tt>'. */
    int GETFIELD1 = 68;

    /** Constant for instruction '<tt>GETFIELD2</tt>'. */
    int GETFIELD2 = 69;

    /** Constant for instruction '<tt>GETFIELD3</tt>'. */
    int GETFIELD3 = 70;

    /** Constant for instruction '<tt>GETFIELD</tt>'. */
    int GETFIELD = 71;

    /** Constant for instruction '<tt>GETFLOATFIELD</tt>'. */
    int GETFLOATFIELD = 72;

    /** Constant for instruction '<tt>SETFIELD0</tt>'. */
    int SETFIELD0 = 73;

    /** Constant for instruction '<tt>SETFIELD1</tt>'. */
    int SETFIELD1 = 74;

    /** Constant for instruction '<tt>SETFIELD2</tt>'. */
    int SETFIELD2 = 75;

    /** Constant for instruction '<tt>SETFIELD3</tt>'. */
    int SETFIELD3 = 76;

    /** Constant for instruction '<tt>SETFIELD</tt>'. */
    int SETFIELD = 77;

    /** Constant for instruction '<tt>SETFLOATFIELD</tt>'. */
    int SETFLOATFIELD = 78;

    /** Constant for instruction '<tt>VECTLENGTH</tt>'. */
    int VECTLENGTH = 79;

    /** Constant for instruction '<tt>GETVECTITEM</tt>'. */
    int GETVECTITEM = 80;

    /** Constant for instruction '<tt>SETVECTITEM</tt>'. */
    int SETVECTITEM = 81;

    /** Constant for instruction '<tt>GETSTRINGCHAR</tt>'. */
    int GETSTRINGCHAR = 82;

    /** Constant for instruction '<tt>SETSTRINGCHAR</tt>'. */
    int SETSTRINGCHAR = 83;

    /** Constant for instruction '<tt>BRANCH</tt>'. */
    int BRANCH = 84;

    /** Constant for instruction '<tt>BRANCHIF</tt>'. */
    int BRANCHIF = 85;

    /** Constant for instruction '<tt>BRANCHIFNOT</tt>'. */
    int BRANCHIFNOT = 86;

    /** Constant for instruction '<tt>SWITCH</tt>'. */
    int SWITCH = 87;

    /** Constant for instruction '<tt>BOOLNOT</tt>'. */
    int BOOLNOT = 88;

    /** Constant for instruction '<tt>PUSHTRAP</tt>'. */
    int PUSHTRAP = 89;

    /** Constant for instruction '<tt>POPTRAP</tt>'. */
    int POPTRAP = 90;

    /** Constant for instruction '<tt>RAISE</tt>'. */
    int RAISE = 91;

    /** Constant for instruction '<tt>CHECK_SIGNALS</tt>'. */
    int CHECK_SIGNALS = 92;

    /** Constant for instruction '<tt>C_CALL1</tt>'. */
    int C_CALL1 = 93;

    /** Constant for instruction '<tt>C_CALL2</tt>'. */
    int C_CALL2 = 94;

    /** Constant for instruction '<tt>C_CALL3</tt>'. */
    int C_CALL3 = 95;

    /** Constant for instruction '<tt>C_CALL4</tt>'. */
    int C_CALL4 = 96;

    /** Constant for instruction '<tt>C_CALL5</tt>'. */
    int C_CALL5 = 97;

    /** Constant for instruction '<tt>C_CALLN</tt>'. */
    int C_CALLN = 98;

    /** Constant for instruction '<tt>CONST0</tt>'. */
    int CONST0 = 99;

    /** Constant for instruction '<tt>CONST1</tt>'. */
    int CONST1 = 100;

    /** Constant for instruction '<tt>CONST2</tt>'. */
    int CONST2 = 101;

    /** Constant for instruction '<tt>CONST3</tt>'. */
    int CONST3 = 102;

    /** Constant for instruction '<tt>CONSTINT</tt>'. */
    int CONSTINT = 103;

    /** Constant for instruction '<tt>PUSHCONST0</tt>'. */
    int PUSHCONST0 = 104;

    /** Constant for instruction '<tt>PUSHCONST1</tt>'. */
    int PUSHCONST1 = 105;

    /** Constant for instruction '<tt>PUSHCONST2</tt>'. */
    int PUSHCONST2 = 106;

    /** Constant for instruction '<tt>PUSHCONST3</tt>'. */
    int PUSHCONST3 = 107;

    /** Constant for instruction '<tt>PUSHCONSTINT</tt>'. */
    int PUSHCONSTINT = 108;

    /** Constant for instruction '<tt>NEGINT</tt>'. */
    int NEGINT = 109;

    /** Constant for instruction '<tt>ADDINT</tt>'. */
    int ADDINT = 110;

    /** Constant for instruction '<tt>SUBINT</tt>'. */
    int SUBINT = 111;

    /** Constant for instruction '<tt>MULINT</tt>'. */
    int MULINT = 112;

    /** Constant for instruction '<tt>DIVINT</tt>'. */
    int DIVINT = 113;

    /** Constant for instruction '<tt>MODINT</tt>'. */
    int MODINT = 114;

    /** Constant for instruction '<tt>ANDINT</tt>'. */
    int ANDINT = 115;

    /** Constant for instruction '<tt>ORINT</tt>'. */
    int ORINT = 116;

    /** Constant for instruction '<tt>XORINT</tt>'. */
    int XORINT = 117;

    /** Constant for instruction '<tt>LSLINT</tt>'. */
    int LSLINT = 118;

    /** Constant for instruction '<tt>LSRINT</tt>'. */
    int LSRINT = 119;

    /** Constant for instruction '<tt>ASRINT</tt>'. */
    int ASRINT = 120;

    /** Constant for instruction '<tt>EQ</tt>'. */
    int EQ = 121;

    /** Constant for instruction '<tt>NEQ</tt>'. */
    int NEQ = 122;

    /** Constant for instruction '<tt>LTINT</tt>'. */
    int LTINT = 123;

    /** Constant for instruction '<tt>LEINT</tt>'. */
    int LEINT = 124;

    /** Constant for instruction '<tt>GTINT</tt>'. */
    int GTINT = 125;

    /** Constant for instruction '<tt>GEINT</tt>'. */
    int GEINT = 126;

    /** Constant for instruction '<tt>OFFSETINT</tt>'. */
    int OFFSETINT = 127;

    /** Constant for instruction '<tt>OFFSETREF</tt>'. */
    int OFFSETREF = 128;

    /** Constant for instruction '<tt>ISINT</tt>'. */
    int ISINT = 129;

    /** Constant for instruction '<tt>GETMETHOD</tt>'. */
    int GETMETHOD = 130;

    /** Constant for instruction '<tt>BEQ</tt>'. */
    int BEQ = 131;

    /** Constant for instruction '<tt>BNEQ</tt>'. */
    int BNEQ = 132;

    /** Constant for instruction '<tt>BLTINT</tt>'. */
    int BLTINT = 133;

    /** Constant for instruction '<tt>BLEINT</tt>'. */
    int BLEINT = 134;

    /** Constant for instruction '<tt>BGTINT</tt>'. */
    int BGTINT = 135;

    /** Constant for instruction '<tt>BGEINT</tt>'. */
    int BGEINT = 136;

    /** Constant for instruction '<tt>ULTINT</tt>'. */
    int ULTINT = 137;

    /** Constant for instruction '<tt>UGEINT</tt>'. */
    int UGEINT = 138;

    /** Constant for instruction '<tt>BULTINT</tt>'. */
    int BULTINT = 139;

    /** Constant for instruction '<tt>BUGEINT</tt>'. */
    int BUGEINT = 140;

    /** Constant for instruction '<tt>GETPUBMET</tt>'. */
    int GETPUBMET = 141;

    /** Constant for instruction '<tt>GETDYNMET</tt>'. */
    int GETDYNMET = 142;

    /** Constant for instruction '<tt>STOP</tt>'. */
    int STOP = 143;

    /** Constant for instruction '<tt>EVENT</tt>'. */
    int EVENT = 144;

    /** Constant for instruction '<tt>BREAK</tt>'. */
    int BREAK = 145;

    /** Map from instruction bytecode to mnemonic. */
    String[] MNEMONICS = {
        "ACC0",
        "ACC1",
        "ACC2",
        "ACC3",
        "ACC4",
        "ACC5",
        "ACC6",
        "ACC7",
        "ACC",
        "PUSH",
        "PUSHACC0",
        "PUSHACC1",
        "PUSHACC2",
        "PUSHACC3",
        "PUSHACC4",
        "PUSHACC5",
        "PUSHACC6",
        "PUSHACC7",
        "PUSHACC",
        "POP",
        "ASSIGN",
        "ENVACC1",
        "ENVACC2",
        "ENVACC3",
        "ENVACC4",
        "ENVACC",
        "PUSHENVACC1",
        "PUSHENVACC2",
        "PUSHENVACC3",
        "PUSHENVACC4",
        "PUSHENVACC",
        "PUSH_RETADDR",
        "APPLY",
        "APPLY1",
        "APPLY2",
        "APPLY3",
        "APPTERM",
        "APPTERM1",
        "APPTERM2",
        "APPTERM3",
        "RETURN",
        "RESTART",
        "GRAB",
        "CLOSURE",
        "CLOSUREREC",
        "OFFSETCLOSUREM2",
        "OFFSETCLOSURE0",
        "OFFSETCLOSURE2",
        "OFFSETCLOSURE",
        "PUSHOFFSETCLOSUREM2",
        "PUSHOFFSETCLOSURE0",
        "PUSHOFFSETCLOSURE2",
        "PUSHOFFSETCLOSURE",
        "GETGLOBAL",
        "PUSHGETGLOBAL",
        "GETGLOBALFIELD",
        "PUSHGETGLOBALFIELD",
        "SETGLOBAL",
        "ATOM0",
        "ATOM",
        "PUSHATOM0",
        "PUSHATOM",
        "MAKEBLOCK",
        "MAKEBLOCK1",
        "MAKEBLOCK2",
        "MAKEBLOCK3",
        "MAKEFLOATBLOCK",
        "GETFIELD0",
        "GETFIELD1",
        "GETFIELD2",
        "GETFIELD3",
        "GETFIELD",
        "GETFLOATFIELD",
        "SETFIELD0",
        "SETFIELD1",
        "SETFIELD2",
        "SETFIELD3",
        "SETFIELD",
        "SETFLOATFIELD",
        "VECTLENGTH",
        "GETVECTITEM",
        "SETVECTITEM",
        "GETSTRINGCHAR",
        "SETSTRINGCHAR",
        "BRANCH",
        "BRANCHIF",
        "BRANCHIFNOT",
        "SWITCH",
        "BOOLNOT",
        "PUSHTRAP",
        "POPTRAP",
        "RAISE",
        "CHECK_SIGNALS",
        "C_CALL1",
        "C_CALL2",
        "C_CALL3",
        "C_CALL4",
        "C_CALL5",
        "C_CALLN",
        "CONST0",
        "CONST1",
        "CONST2",
        "CONST3",
        "CONSTINT",
        "PUSHCONST0",
        "PUSHCONST1",
        "PUSHCONST2",
        "PUSHCONST3",
        "PUSHCONSTINT",
        "NEGINT",
        "ADDINT",
        "SUBINT",
        "MULINT",
        "DIVINT",
        "MODINT",
        "ANDINT",
        "ORINT",
        "XORINT",
        "LSLINT",
        "LSRINT",
        "ASRINT",
        "EQ",
        "NEQ",
        "LTINT",
        "LEINT",
        "GTINT",
        "GEINT",
        "OFFSETINT",
        "OFFSETREF",
        "ISINT",
        "GETMETHOD",
        "BEQ",
        "BNEQ",
        "BLTINT",
        "BLEINT",
        "BGTINT",
        "BGEINT",
        "ULTINT",
        "UGEINT",
        "BULTINT",
        "BUGEINT",
        "GETPUBMET",
        "GETDYNMET",
        "STOP",
        "EVENT",
        "BREAK"
    };

    /** Map from instruction bytecode to number of operands. */
    int[] OPERANDS = {
        0, /* ACC0 */
        0, /* ACC1 */
        0, /* ACC2 */
        0, /* ACC3 */
        0, /* ACC4 */
        0, /* ACC5 */
        0, /* ACC6 */
        0, /* ACC7 */
        1, /* ACC */
        0, /* PUSH */
        0, /* PUSHACC0 */
        0, /* PUSHACC1 */
        0, /* PUSHACC2 */
        0, /* PUSHACC3 */
        0, /* PUSHACC4 */
        0, /* PUSHACC5 */
        0, /* PUSHACC6 */
        0, /* PUSHACC7 */
        1, /* PUSHACC */
        1, /* POP */
        1, /* ASSIGN */
        0, /* ENVACC1 */
        0, /* ENVACC2 */
        0, /* ENVACC3 */
        0, /* ENVACC4 */
        1, /* ENVACC */
        0, /* PUSHENVACC1 */
        0, /* PUSHENVACC2 */
        0, /* PUSHENVACC3 */
        0, /* PUSHENVACC4 */
        1, /* PUSHENVACC */
        1, /* PUSH_RETADDR */
        1, /* APPLY */
        0, /* APPLY1 */
        0, /* APPLY2 */
        0, /* APPLY3 */
        2, /* APPTERM */
        1, /* APPTERM1 */
        1, /* APPTERM2 */
        1, /* APPTERM3 */
        1, /* RETURN */
        0, /* RESTART */
        1, /* GRAB */
        2, /* CLOSURE */
        0, /* CLOSUREREC */
        0, /* OFFSETCLOSUREM2 */
        0, /* OFFSETCLOSURE0 */
        0, /* OFFSETCLOSURE2 */
        1, /* OFFSETCLOSURE */
        0, /* PUSHOFFSETCLOSUREM2 */
        0, /* PUSHOFFSETCLOSURE0 */
        0, /* PUSHOFFSETCLOSURE2 */
        1, /* PUSHOFFSETCLOSURE */
        1, /* GETGLOBAL */
        1, /* PUSHGETGLOBAL */
        2, /* GETGLOBALFIELD */
        2, /* PUSHGETGLOBALFIELD */
        1, /* SETGLOBAL */
        0, /* ATOM0 */
        1, /* ATOM */
        0, /* PUSHATOM0 */
        1, /* PUSHATOM */
        2, /* MAKEBLOCK */
        1, /* MAKEBLOCK1 */
        1, /* MAKEBLOCK2 */
        1, /* MAKEBLOCK3 */
        1, /* MAKEFLOATBLOCK */
        0, /* GETFIELD0 */
        0, /* GETFIELD1 */
        0, /* GETFIELD2 */
        0, /* GETFIELD3 */
        1, /* GETFIELD */
        1, /* GETFLOATFIELD */
        0, /* SETFIELD0 */
        0, /* SETFIELD1 */
        0, /* SETFIELD2 */
        0, /* SETFIELD3 */
        1, /* SETFIELD */
        1, /* SETFLOATFIELD */
        0, /* VECTLENGTH */
        0, /* GETVECTITEM */
        0, /* SETVECTITEM */
        0, /* GETSTRINGCHAR */
        0, /* SETSTRINGCHAR */
        1, /* BRANCH */
        1, /* BRANCHIF */
        1, /* BRANCHIFNOT */
        0, /* SWITCH */
        0, /* BOOLNOT */
        1, /* PUSHTRAP */
        0, /* POPTRAP */
        0, /* RAISE */
        0, /* CHECK_SIGNALS */
        1, /* C_CALL1 */
        1, /* C_CALL2 */
        1, /* C_CALL3 */
        1, /* C_CALL4 */
        1, /* C_CALL5 */
        2, /* C_CALLN */
        0, /* CONST0 */
        0, /* CONST1 */
        0, /* CONST2 */
        0, /* CONST3 */
        1, /* CONSTINT */
        0, /* PUSHCONST0 */
        0, /* PUSHCONST1 */
        0, /* PUSHCONST2 */
        0, /* PUSHCONST3 */
        1, /* PUSHCONSTINT */
        0, /* NEGINT */
        0, /* ADDINT */
        0, /* SUBINT */
        0, /* MULINT */
        0, /* DIVINT */
        0, /* MODINT */
        0, /* ANDINT */
        0, /* ORINT */
        0, /* XORINT */
        0, /* LSLINT */
        0, /* LSRINT */
        0, /* ASRINT */
        0, /* EQ */
        0, /* NEQ */
        0, /* LTINT */
        0, /* LEINT */
        0, /* GTINT */
        0, /* GEINT */
        1, /* OFFSETINT */
        1, /* OFFSETREF */
        0, /* ISINT */
        0, /* GETMETHOD */
        2, /* BEQ */
        2, /* BNEQ */
        2, /* BLTINT */
        2, /* BLEINT */
        2, /* BGTINT */
        2, /* BGEINT */
        0, /* ULTINT */
        0, /* UGEINT */
        2, /* BULTINT */
        2, /* BUGEINT */
        2, /* GETPUBMET */
        0, /* GETDYNMET */
        0, /* STOP */
        0, /* EVENT */
        0  /* BREAK */
    };

} // end interface 'Instructions'
